TOP

SQL UNION 문

SQL UNION 설명

UNION 연산자는 두 개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용됩니다.

  • UNION의 각 SELECT 문에는 동일한 수의 열이 있어야 합니다.
  • 열에는 유사한 데이터 유형도 있어야 합니다.
  • 각 SELECT 문의 열도 동일한 순서로 되어 있어야 합니다.

  • UNION 구문

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2
    

    UNION ALL 구문

    UNION 연산자는 기본적으로 고유한 값만 선택합니다. 중복 값을 허용하려면 UNION ALL을 사용하세요.

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2
    
    결과 집합의 열 이름은 일반적으로 첫 번째 SELECT 문의 열 이름과 일치합니다.

    데모 데이터베이스

    이 튜토리얼에서는 유명한 예제 데이터베이스 "Northwind"을 사용합니다.

    다음은 "Customers"("고객") 테이블의 샘플입니다.

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    그리고 "Suppliers"("공급업체") 테이블의 샘플은 다음과 같습니다.

    SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
    1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
    2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
    3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
    4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
    5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

    SQL UNION 예

    다음 SQL 문은 고객 및 공급업체 테이블에서 도시(다른 값만)를 선택합니다.

    Run SQLSELECT City FROM Customers 
    UNION 
    SELECT City FROM Suppliers 
    ORDER BY City
    
    일부 고객 또는 공급업체가 동일한 도시(City)를 갖는 경우 UNION이 다른 값만 선택하므로 각 도시는 한 번만 지정됩니다. 중복된 값도 선택하려면 UNION ALL을 사용하세요!

    SQL UNION ALL 예

    다음 SQL 문은 고객 및 공급업체 테이블 모두에서 도시(중복 값)를 선택합니다.

    Run SQLSELECT City FROM Customers 
    UNION ALL 
    SELECT City FROM Suppliers 
    ORDER BY City
    

    SQL UNION과 WHERE

    다음 SQL 문은 고객 및 공급업체 테이블 모두에서 독일 도시(다른 값만)를 선택합니다.

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    SQL UNION ALL과 WHERE

    다음 SQL 문은 고객 및 공급업체 테이블 모두에서 독일 도시(중복 값)를 선택합니다.

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION ALL 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    또 다른 SQL UNION 예

    다음 SQL 문은 모든 고객과 공급자를 나열합니다.

    Run SQLSELECT 'Customer' AS Type, ContactName, City, Country 
    FROM Customers 
    UNION 
    SELECT 'Supplier', ContactName, City, Country 
    FROM Suppliers
    

    위의 "AS Type"은 별칭입니다. SQL 별칭은 테이블이나 열에 임시 이름을 지정하는 데 사용됩니다. 별칭은 요청 기간 동안에만 존재합니다. 따라서 여기서는 연락처가 "고객"인지 "공급업체"인지를 나타내는 "Type"이라는 임시 열을 만들었습니다.